package com.wisdytech.linkdcs.tool.service;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.linkdcs.system.model.SysUser;
import com.wisdytech.linkdcs.tool.model.TtEqTool;
import com.wisdytech.linkdcs.tool.vo.ToolCheckVO;
import com.wisdytech.linkdcs.tool.vo.ToolMaintainVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhanghailin
 * @since 2018-06-05
 */
public interface ITtEqToolService{

    /**
     * 条件分页查询
     * @return PageInfo
     */
    PageInfo<TtEqTool> listToolInfoByFilter(String toolCode,
                                            String toolName,
                                            String toolModel,
                                            String toolType,
                                            String opCode,
                                            String toolStatus,
                                            String checkDateStart,
                                            String checkDateEnd,
                                            String maintainFlag,
                                            String checkoutFlag,
                                            Filter filter);

    /**
     * 获取所有工装列表 （侧边栏使用）
     * @param search 查询条件
     * @return list
     */
    List<TtEqTool> getToolList(String search);

    /**
     *
     * @param ttEqTool 实体类
     * @param operator 操作人
     * @return 操作结果
     */
    Boolean saveOrUpdateTool(TtEqTool ttEqTool, SysUser operator);

    /**
     *
     * @param pkIds 主键，逗号隔开
     * @return 操作结果
     */
    Boolean deleteTool(String pkIds, SysUser operator);

    /**
     *
     * @param pkId 主键
     * @return 实体类
     */
    TtEqTool getToolInfoById(String pkId);


    /**
     *
     * @param toolCode 工装编码
     * @param toolName 工装名称
     * @param toolModel 工装型号
     * @param toolType 工装类型字典值
     * @param nextMaintainDateStart 下次保养时间时间段开始
     * @param nextMaintainDateEnd 下次保养时间时间段结束
     * @return PageInfo
     */
    PageInfo<TtEqTool> getToolMaintainList(String toolCode, String toolName,String toolModel,String toolType,String nextMaintainDateStart,String nextMaintainDateEnd,Filter filter);

    /**
     *
     * @param toolCode 工装编码
     * @param toolName 工装名称
     * @param toolModel 工装型号
     * @param toolType 工装类型字典值
     * @param opCode 工序编码
     * @param nextCheckDateStart 下次保养时间时间段开始
     * @param nextCheckDateEnd 下次保养时间时间段结束
     * @return PageInfo
     */
    PageInfo<TtEqTool> getToolCheckList(String toolCode, String toolName,String toolModel,String toolType,String opCode,String nextCheckDateStart,String nextCheckDateEnd,Filter filter);

    /**
     *
     */
    ToolMaintainVO getToolMaintainInfo(String toolCode);


    ToolCheckVO getToolCheckInfo(String toolCode);


    PageInfo<SysUser> getUserPageList(String search,Filter filter);


}
